package com.dbexposer.db.mybatis.generator;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URISyntaxException;
import java.net.URL;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.exception.InvalidConfigurationException;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;

public class Generator {

	/**
	 * @param args
	 * @throws XMLParserException
	 * @throws IOException
	 * @throws InvalidConfigurationException
	 * @throws InterruptedException
	 * @throws SQLException
	 * @throws URISyntaxException
	 */
	public static void main(String[] args) throws IOException, XMLParserException, InvalidConfigurationException,
			SQLException, InterruptedException, URISyntaxException {
		
		List<String> warnings = new ArrayList<String>();
		boolean overwrite = true;
		URL url = Generator.class.getClassLoader().getSystemResource("mybatis-generator-conf.xml");
		File configFile = new File(url.toURI());
		ConfigurationParser cp = new ConfigurationParser(warnings);
		Configuration config = cp.parseConfiguration(configFile);
		DefaultShellCallback callback = new DefaultShellCallback(overwrite);
		MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
		myBatisGenerator.generate(null);
		
	}

}
